Teamprojekt Softwareentwicklung

Bachelor Projekt

Agile Software Engineering Project


Sprecher: Ragnar Mogk

Teamprojekt Softwareentwicklung

  • 5er Teams + 1 Teambegleitung + 1 Auftraggeber:innen
  • ~4 Begleitvorlesungen
  • Team- und Vortragstraining
  • Funktionierende Software!
  • Projektdokumentation und -präsentation

Worum geht es bei

Softwareentwicklung im Team?

Kommunikation

Kommunikation

  • Teammitglieder
  • Teambegleitung
  • Auftraggeber:innen
  • Nutzer:innen
  • Kursorga
  • Meetings / Emails
  • Spezifikation / Dokumentation
  • Code Reviews / Kommentare
  • Tickets / User Stories
  • Code

Teamfindung

Kennenlernen

Klärt eure Erwartungen und kommuniziert sie:

  • Projekttyp: Webanwendung, Konsolenprogramm, …
  • Technologien: Programmiersprachen, Tools
  • Anspruch: Bestnote, Aufwand
  • Verfügbarkeit: Teilzeitstudium, …
  • Arbeitsweise: Pair-Programming, regelmäßige Meetings
  • Teilnahme: Präsenz oder remote
  • Vorerfahrungen
  • Trefft euch vor der Deadline und besprecht alle Punkte!

Macht mal was als Team gemeinsam

  • Brettspiele, Bowling, Minigolf, Kochen, ...

Kommunikation

  • Jour Fixe: Regelmäßiges festes Meeting
    • 1x pro Iteration (2 Wochen)
    • mit der Gruppe
    • mit dem AG
    • alle offenen Punkte ansprechen
    • eventuelle längere technischen Diskussion auf später verschieben
  • Teamkontakt:
    • eine E-Mail-Adresse
    • eine Person die zuständig ist zu Antworten
    • Kontakt für AG, TB, und Orga
  • Projektmanagement Tracking:
    • Issue/Task tracking (Gitlab, Github, Trello, Jenkins, …)
  • Weiter Kommunikation euch überlassen:
    • Calls, Instant Messenger, sonstige Software, …
    • Stand-up Meetings, Pair-Programming, Group-Programming, ...

Zeitmanagement

  • Regelmäßiges Arbeiten
  • Findet Wege euch zu Motivieren
    • Häufigeres gemeinsames Arbeiten
    • Macht mal was in der Freizeit
  • Arbeitet auf die Projektziele hin
    • Plant Aufgaben pro Iteration
    • Plant genug Puffer für Probleme
  • Teilt euch die Zeit ein zwischen:
    • Projektorganisation (Planung, Doku, Prozesse, Tooling, …)
    • Entwicklung (Spezifische Tasks, Softwarequalität, …)

Konflikte

  • Konflikte sind normal
  • Bereitet euch darauf vor
  • Geht professionell damit um

Konfliktverwaltungsstrategien

(wenn nötig)

  • Festlegung von Rollen und Verantwortlichkeiten
    • Dokumentiert eure Arbeitszeiten
    • Dokumentiert eure Beiträge
  • Offene Kommunikation bei Uneinigkeiten
    • Ziel: Gemeinsame Lösungen finden
    • Vermeidung von schlechten Kompromissen
  • Fokussierung auf die Erreichung der Projektziele trotz Konflikten
  • Teambegleitung bietet Unterstützung

Problembeispiele

„Ein Teammitglied trägt nur wenig bei“

  • Erwartung: 270h pro Person, 12h pro Woche (SEP: 2 Tage pro Woche)
  • Frühzeitig im Team ansprechen:
    • „Wir finden, dass du dich zu wenig an der Projektarbeit beteiligst, und wollen nicht, dass das einen negativen Einfluss auf unser Projektergebnis hat.”
  • Setzt ein Ultimatum:
    • „Wenn sich das nicht ändert, werden wir das in der Projektdokumentation festhalten.”
  • Kommuniziert mit eurer Teambegleitung.

„Ich habe das Gefühl, alle Arbeit bleibt an mir hängen.”

  • Aufgaben zuweisen
  • Dokumentiert Arbeitszeiten und Beiträge
  • Bittet TBs um Hilfe

„Mit meinem Vorwissen kann ich die Aufgabe nicht bearbeiten.”

  • Pair-Programming
  • Gemeinsame Weiterbildung
  • Kommuniziert mit TBs und AGs.

„Es liegen inkonsistente Requirements vor.”

  • Mit TB und AG kommunizieren

„Die Aufgabe ist mit den gegebenen Ressourcen nicht realisierbar.”

  • Mit AG kommunizieren

„Meine Teamkollegen geben mir Anweisungen”

  • Zur Klarstellung:
    • Es gibt keine Projektleitung
    • Es wird auch nicht per Mehrheit entschieden
  • Entscheidungen sollen Einstimmig sein
  • Diskutiert Lösungen
  • Vermeidet schlechte Kompromisse
  • Kommuniziert mit den TBs
  • Bei Priorisierungsfragen kontaktiert die AGs.

Erwartungen

(von uns an euch)

Regelmäßige Teilnahme am Prozess

Zeitaufwand

  • 9CP = 270h (SEP: 12CP = 360h)
  • Projektarbeit, Meetings, Dokumentation, Präsentationen, Vorlesungen, …

Projektmanagement Bestandteile

  • Projektspezifikation (zu Beginn)
    • „Vertrag“ zwischen euch und AG was getan werden soll
    • Klärt Randbedingungen wie Abgabeformat und Lizenzen
  • Qualitätssicherung
    • Projektdatenmanagement (e.g., git, issue tracker, …)
    • Code Reviews
    • Tests
  • Projektdokumentation (kontinuierlich, Abgabe am Ende)
    • Spezifikation erfüllt?
    • Qualitätssicherung durchgeführt?
    • Arbeitszeiten?
    • Abgearbeitet User Stories?
    • Prozesse durchgeführt?
  • Details in eigenen Vorlesungen und durch Teambegleitungen

Agile Software Engineering Project

  • Selbe Begleitvorlesung, anderes Rahmenprogramm
  • Mehr CP, mehr Aufwand
  • Selektiver Prozess
    • -> eventuell auch fürs BP registrieren!
  • Projektmesse: Montag 10:00-13:00, in S2|20 Raum 9
    • Bitte vorher Anmelden (siehe Webseite)

Fragen?

  • Todos für euch:
  • Findet euch in 5er Teams zusammen. (vereinzelt 4er Teams)
  • Schaut euch die Projekte an.
  • Behaltet das Moodle bezüglich Anweisungen zur Anmeldung im Auge
  • Deadline ende Montag